# /etc/security/limits.conf
#
# This file generate by j2 template file: src/sonic-host-services/data/templates/limits.conf.j2
#
# Each line describes a limit for a user in the form:
#
# <domain>        <type>  <item>  <value>
#
# Where:
# <domain> can be:
#        - a user name
#        - a group name, with @group syntax
#        - the wildcard *, for default entry
#        - the wildcard %, can be also used with %group syntax,
#                 for maxlogin limit
#        - NOTE: group and wildcard limits are not applied to root.
#          To apply a limit to the root user, <domain> must be
#          the literal username root.
#
# <type> can have the two values:
#        - "soft" for enforcing the soft limits
#        - "hard" for enforcing hard limits
#
# <item> can be one of the following:
#        - core - limits the core file size (KB)
#        - data - max data size (KB)
#        - fsize - maximum filesize (KB)
#        - memlock - max locked-in-memory address space (KB)
#        - nofile - max number of open file descriptors
#        - rss - max resident set size (KB)
#        - stack - max stack size (KB)
#        - cpu - max CPU time (MIN)
#        - nproc - max number of processes
#        - as - address space limit (KB)
#        - maxlogins - max number of logins for this user
#        - maxsyslogins - max number of logins on the system
#        - priority - the priority to run user process with
#        - locks - max number of file locks the user can hold
#        - sigpending - max number of pending signals
#        - msgqueue - max memory used by POSIX message queues (bytes)
#        - nice - max nice priority allowed to raise to values: [-20, 19]
#        - rtprio - max realtime priority
#        - chroot - change root to directory (Debian-specific)
#
#
# <value> is related with <item>:
#          All items support the values -1, unlimited or infinity indicating
#          no limit, except for priority and nice.
#
#          If a hard limit or soft limit of a resource is set to a valid value,
#          but outside of the supported range of the local system, the system
#          may reject the new limit or unexpected behavior may occur. If the
#          control value required is used, the module will reject the login if
#          a limit could not be set.
#
# <domain>      <type>  <item>         <value>
#

# *               soft    core            0
# root            hard    core            100000
# *               hard    rss             10000
# @student        hard    nproc           20
# @faculty        soft    nproc           20
# @faculty        hard    nproc           50
# ftp             hard    nproc           0
# ftp             -       chroot          /ftp
# @student        -       maxlogins       4

{% if max_sessions and max_sessions | int > 0 -%}
* - maxsyslogins {{ max_sessions }}
{% endif -%}

# End of file
